from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(主动技能):
    名称 = '源光斩'
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [16, 161]
    # 斩击攻击力：<data0>%
    data0 = [int(i*1.085*1.12) for i in [0, 1034, 1138, 1243, 1348, 1454, 1559, 1663, 1768, 1873, 1979, 2082, 2188, 2294, 2398, 2504, 2607, 2713, 2818, 2923, 3029, 3132, 3238, 3343, 3448, 3553, 3658, 3763, 3868, 3973, 4077, 4183, 4287,
                                         4393, 4498, 4602, 4708, 4812, 4918, 5023, 5127, 5233, 5337, 5443, 5548, 5652, 5757, 5862, 5968, 6072, 6177, 6282, 6388, 6491, 6597, 6701, 6807, 6913, 7016, 7122, 7226, 7332, 7438, 7541, 7647, 7752, 7857, 7962, 8066, 8171, 8277]]
    hit0 = 1
    # 能量多段攻击力：<data1>%
    data1 = [int(i*1.085*1.12) for i in [0, 175, 193, 211, 229, 246, 266, 284, 302, 319, 337, 355, 373, 392, 409, 427, 445, 463, 480, 498, 516, 534, 553, 570, 588, 606, 624, 641, 659, 677, 697, 715, 732, 750, 768,
                                         786, 803, 821, 840, 858, 876, 893, 911, 929, 947, 964, 983, 1001, 1019, 1037, 1054, 1072, 1090, 1108, 1125, 1145, 1163, 1181, 1199, 1216, 1234, 1252, 1271, 1288, 1306, 1324, 1342, 1359, 1377, 1395, 1414]]
    hit1 = 4
    CD = 5
    TP成长 = 0.10
    TP上限 = 7


class 技能1(主动技能):
    名称 = '旋转源能波'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [23, 241]
    # 波动攻击力：<data0>%
    data0 = [int(i*1.085*1.113) for i in [0, 383, 424, 462, 501, 541, 579, 618, 658, 698, 735, 775, 814, 855, 892, 932, 971, 1008, 1048, 1088, 1128, 1166, 1205, 1244, 1285, 1323, 1362, 1401, 1439,
                                          1479, 1519, 1558, 1596, 1636, 1674, 1713, 1753, 1793, 1832, 1870, 1909, 1950, 1989, 2027, 2066, 2106, 2143, 2183, 2223, 2263, 2301, 2339, 2380, 2418, 2458, 2496, 2536, 2574, 2615, 2653, 2693]]
    hit0 = 1
    # 源能波攻击力：<data1>%
    data1 = [int(i*1.085*1.113) for i in [0, 545, 600, 657, 712, 767, 824, 879, 934, 990, 1045, 1100, 1157, 1213, 1268, 1324, 1380, 1434, 1490, 1545, 1600, 1656, 1711, 1767, 1824, 1879, 1934, 1991, 2046,
                                          2101, 2157, 2212, 2266, 2322, 2378, 2434, 2490, 2545, 2600, 2657, 2712, 2767, 2823, 2878, 2933, 2991, 3046, 3101, 3156, 3211, 3266, 3323, 3378, 3433, 3489, 3544, 3599, 3657, 3712, 3767, 3824]]
    hit1 = 4
    CD = 5
    TP成长 = 0.10
    TP上限 = 7


class 技能2(主动技能):
    名称 = '源能护盾'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [23, 241]
    data0 = [int(i*1.085*1.12) for i in [0, 3604, 3968, 4700, 5064, 5431, 5797, 6161, 6527, 6894, 7260, 7624, 7990, 8356, 8721, 9087, 9453, 9817, 10184, 10550, 10914, 11280, 11646, 12013, 12377, 12743, 13109, 13473, 13840, 14206, 14570, 14936, 15303, 15669,
                                         16033, 16399, 16765, 17130, 17496, 17862, 18226, 18593, 18959, 19323, 19689, 20055, 20422, 20786, 21152, 21518, 21883, 22249, 22615, 22979, 23345, 23712, 24076, 24442, 24808, 25175, 25539, 25905, 26271, 26635, 27002, 27368, 27732, 28098, 28465, 28829]]
    hit0 = 1
    CD = 8
    TP成长 = 0.10
    TP上限 = 7


class 技能3(主动技能):
    名称 = '镭射源能枪'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [36, 378]
    data0 = [int(i*1.085) for i in [0, 739, 814, 889, 965, 1039, 1115, 1190, 1265, 1340, 1415, 1489, 1565, 1640, 1716, 1791, 1866, 1942, 2015, 2091, 2166, 2241, 2316, 2392, 2466, 2542, 2617, 2692,
                                    2766, 2842, 2917, 2992, 3067, 3143, 3218, 3292, 3368, 3442, 3518, 3593, 3669, 3743, 3819, 3894, 3968, 4043, 4119, 4193, 4269, 4344, 4419, 4494, 4569, 4645, 4719, 4795, 4870, 4945, 5020, 5096, 5169]]
    hit0 = 2
    data1 = [int(i*1.085) for i in [0, 2144, 2362, 2580, 2797, 3015, 3233, 3449, 3668, 3885, 4103, 4320, 4539, 4755, 4974, 5191, 5407, 5626, 5844, 6061, 6279, 6497, 6713, 6932, 7150, 7367, 7585, 7802, 8020, 8237,
                                    8456, 8672, 8891, 9108, 9327, 9543, 9761, 9979, 10196, 10414, 10632, 10849, 11067, 11285, 11502, 11720, 11938, 12154, 12373, 12590, 12808, 13025, 13244, 13460, 13679, 13896, 14113, 14331, 14549, 14766, 14984]]
    hit1 = 1
    CD = 8
    TP成长 = 0.10
    TP上限 = 7


class 技能4(被动技能):
    名称 = '源力剑精通'
    所在等级 = 20
    等级上限 = 30
    基础等级 = 20

    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        if self.等级 <= 20:
            return round(1 + (0.05 + 0.01 * self.等级), 5)
        else:
            return round(1 + (0.25 + 0.02 * (self.等级 - 20)), 5)


class 技能5(主动技能):
    名称 = '源能波刃'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [52, 546]
    # 斩击攻击力：<data0>%
    data0 = [int(i*1.085*1.103) for i in [0, 2219, 2444, 2670, 2896, 3122, 3346, 3571, 3797, 4022, 4248, 4472, 4698, 4925, 5150, 5376, 5600, 5825, 6051, 6276, 6500, 6726, 6951, 7178, 7403, 7628, 7853, 8078, 8305, 8530,
                                          8755, 8980, 9205, 9432, 9657, 9882, 10107, 10332, 10558, 10782, 11008, 11233, 11458, 11685, 11910, 12136, 12361, 12587, 12812, 13036, 13262, 13487, 13712, 13938, 14163, 14389, 14614, 14840, 15064, 15289, 15516]]
    hit0 = 1
    # 吸附攻击力：<data1>%
    data1 = [int(i*1.085*1.103) for i in [0, 1816, 1999, 2183, 2369, 2553, 2738, 2921, 3106, 3291, 3475, 3659, 3845, 4028, 4213, 4397, 4582, 4766, 4949, 5135, 5318, 5504, 5688, 5872, 6056, 6240, 6426, 6611, 6794,
                                          6979, 7162, 7346, 7532, 7716, 7901, 8084, 8269, 8452, 8638, 8822, 9008, 9191, 9376, 9559, 9744, 9928, 10112, 10298, 10481, 10667, 10850, 11035, 11219, 11403, 11588, 11774, 11957, 12141, 12325, 12509, 12693]]
    hit1 = 1
    CD = 8
    TP成长 = 0.10
    TP上限 = 7


class 技能6(主动技能):
    名称 = '能量飞鱼弹'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [52, 546]
    data0 = [int(i*1.085*1.113) for i in [0, 4395, 4841, 5288, 5734, 6180, 6626, 7074, 7517, 7965, 8411, 8857, 9302, 9750, 10195, 10641, 11087, 11534, 11980, 12426, 12871, 13319, 13764, 14210, 14656, 15104, 15548, 15995, 16441,
                                          16888, 17333, 17780, 18226, 18671, 19118, 19565, 20010, 20457, 20903, 21349, 21794, 22242, 22687, 23134, 23579, 24025, 24472, 24918, 25363, 25810, 26257, 26703, 27148, 27596, 28041, 28487, 28933, 29381, 29824, 30272, 30718]]
    hit0 = 1
    CD = 7.5
    TP成长 = 0.10
    TP上限 = 7


class 技能7(被动技能):
    名称 = '细胞弱化'
    所在等级 = 25
    等级上限 = 11
    基础等级 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.23 + 0.02 * self.等级, 5)


class 技能8(主动技能):
    名称 = '脉冲斩'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [69, 724]
    data0 = [int(i*1.085*1.111) for i in [0, 1375, 1514, 1653, 1793, 1933, 2072, 2211, 2352, 2490, 2631, 2769, 2909, 3049, 3187, 3329, 3467, 3608, 3747, 3886, 4026, 4165, 4305, 4444, 4583, 4723, 4863, 5002,
                                          5142, 5283, 5423, 5561, 5702, 5840, 5980, 6120, 6258, 6399, 6537, 6678, 6817, 6955, 7096, 7234, 7376, 7515, 7656, 7794, 7934, 8073, 8213, 8353, 8491, 8631, 8771, 8910, 9050, 9189, 9329, 9470, 9608]]
    hit0 = 4
    CD = 10
    TP成长 = 0.10
    TP上限 = 7


class 技能9(主动技能):
    名称 = '电磁领域'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    data0 = [int(i*1.085*1.12) for i in [0, 1139, 1255, 1372, 1488, 1603, 1718, 1834, 1950, 2065, 2181, 2297, 2413, 2529, 2644, 2760, 2876, 2991, 3107, 3223, 3339, 3453, 3569, 3686, 3802, 3918, 4033, 4149,
                                         4265, 4381, 4495, 4611, 4727, 4844, 4959, 5075, 5191, 5307, 5421, 5537, 5653, 5769, 5886, 6001, 6117, 6232, 6348, 6463, 6579, 6695, 6811, 6925, 7043, 7158, 7274, 7389, 7505, 7621, 7737, 7851, 7967]]
    hit0 = 5
    data1 = [int(i*1.085*1.12) for i in [0, 2443, 2691, 2940, 3187, 3435, 3684, 3932, 4179, 4428, 4676, 4925, 5171, 5419, 5668, 5915, 6163, 6412, 6659, 6907, 7156, 7404, 7651, 7900, 8148, 8396, 8643, 8891, 9140, 9387,
                                         9635, 9884, 10132, 10379, 10628, 10876, 11123, 11372, 11619, 11868, 12115, 12363, 12612, 12860, 13107, 13356, 13604, 13851, 14100, 14348, 14596, 14843, 15091, 15340, 15587, 15835, 16084, 16332, 16579, 16828, 17076]]
    hit1 = 1
    CD = 20
    TP成长 = 0.10
    TP上限 = 5

    MP = [145, 1218]
    无色消耗 = 1


class 技能10(主动技能):
    名称 = '引力源光弹'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 多段攻击力：<data0>%
    data0 = [int(i*1.085*1.115) for i in [0, 766, 842, 922, 999, 1077, 1155, 1233, 1310, 1388, 1466, 1543, 1622, 1699, 1777, 1855, 1932, 2011, 2090, 2166, 2245, 2321, 2400, 2478, 2555, 2633, 2711, 2789,
                                          2867, 2946, 3023, 3102, 3178, 3257, 3334, 3412, 3489, 3568, 3644, 3723, 3799, 3878, 3958, 4034, 4113, 4191, 4268, 4346, 4425, 4501, 4580, 4656, 4735, 4812, 4890, 4967, 5047, 5125, 5202, 5280, 5358]]
    hit0 = 8
    # 爆炸攻击力：<data1>%
    data1 = [int(i*1.085*1.115) for i in [0, 2163, 2384, 2602, 2821, 3040, 3260, 3480, 3700, 3919, 4139, 4359, 4578, 4798, 5017, 5236, 5457, 5677, 5897, 6115, 6335, 6555, 6776, 6993, 7213, 7433, 7652, 7872, 8091, 8310,
                                          8531, 8751, 8971, 9189, 9409, 9629, 9850, 10069, 10288, 10508, 10727, 10947, 11167, 11384, 11605, 11825, 12044, 12263, 12483, 12702, 12922, 13143, 13362, 13581, 13801, 14021, 14241, 14459, 14680, 14900, 15119]]
    hit1 = 1
    额外倍率 = 1.0
    CD = 15
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    技能施放时间 = 1

    MP = [145, 1218]
    无色消耗 = 1

    形态 = ["常规", "注能"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "注能":
            if '引力源光弹' in char.护石栏:
                self.额外倍率 = 1.3
            else:
                形态 = "常规"
        if 形态 == "常规":
            self.额外倍率 = 1.0

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv)*self.额外倍率

    def 装备护石(self):
        self.power1 = 1.6


class 技能11(主动技能):
    名称 = '光裂斩'
    备注 = '最大蓄气'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 斩击攻击力：<data0>%
    data0 = [int(i*1.085*1.113) for i in [0, 7562, 8329, 9096, 9865, 10632, 11400, 12166, 12933, 13701, 14467, 15236, 16004, 16769, 17537, 18305, 19073, 19840, 20607, 21374, 22141, 22909, 23677, 24445, 25211, 25978, 26746, 27513, 28281,
                                          29049, 29814, 30582, 31350, 32117, 32885, 33653, 34419, 35186, 35954, 36721, 37490, 38256, 39023, 39791, 40558, 41325, 42094, 42862, 43627, 44395, 45162, 45928, 46698, 47464, 48231, 48999, 49766, 50535, 51301, 52068, 52836]]
    hit0 = 1
    # 能量多段攻击力：<data1>%
    data1 = [int(i*1.085*1.113) for i in [0, 1006, 1108, 1211, 1313, 1416, 1517, 1622, 1725, 1824, 1926, 2030, 2132, 2235, 2337, 2440, 2542, 2645, 2745, 2848, 2950, 3053, 3155, 3258, 3360, 3463, 3565, 3667,
                                          3768, 3871, 3973, 4076, 4178, 4281, 4383, 4486, 4587, 4690, 4792, 4895, 4996, 5099, 5201, 5305, 5407, 5507, 5610, 5714, 5816, 5919, 6021, 6124, 6226, 6326, 6429, 6531, 6634, 6736, 6839, 6941, 7044]]
    hit1 = 5
    CD = 25
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [193, 1621]
    无色消耗 = 1

    def 装备护石(self):
        self.power0 = 1.98*1.14
        self.hit1 = 0


class 技能12(主动技能):
    名称 = '光导裂地斩'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 下劈攻击力：<data0>%
    data0 = [int(i*1.085*1.10) for i in [0, 8626, 9501, 10377, 11251, 12127, 13002, 13879, 14753, 15629, 16505, 17379, 18254, 19130, 20005, 20879, 21757, 22630, 23506, 24382, 25257, 26131, 27009, 27882, 28758, 29634, 30509, 31383, 32259,
                                         33135, 34009, 34886, 35761, 36635, 37510, 38387, 39261, 40136, 41013, 41886, 42762, 43638, 44514, 45388, 46265, 47140, 48014, 48890, 49766, 50640, 51516, 52392, 53265, 54142, 55017, 55892, 56768, 57644, 58518, 59394, 60269]]
    hit0 = 1
    # 上挑攻击力：<data1>%
    data1 = [int(i*1.085*1.10) for i in [0, 13135, 14468, 15801, 17133, 18465, 19799, 21132, 22465, 23798, 25130, 26463, 27796, 29129, 30459, 31794, 33127, 34460, 35792, 37125, 38458, 39791, 41124, 42455, 43787, 45122, 46455, 47786, 49119,
                                         50452, 51785, 53117, 54450, 55783, 57117, 58448, 59781, 61114, 62447, 63780, 65112, 66445, 67778, 69112, 70444, 71776, 73109, 74442, 75774, 77107, 78440, 79773, 81107, 82439, 83772, 85105, 86437, 87768, 89101, 90434, 91767]]
    hit1 = 1
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [338, 2839]
    无色消耗 = 2

    def 装备护石(self):
        self.power0 = 1.17
        self.power1 = 1.33


class 技能13(被动技能):
    名称 = '源能增幅'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)


class 技能14(主动技能):
    名称 = '超能场域'
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # 能量多段攻击力：<data0>%
    data0 = [int(i*1.085*1.11) for i in [0, 765, 942, 1120, 1296, 1474, 1653, 1830, 2009, 2183, 2362, 2540, 2718, 2896, 3075, 3250, 3428, 3605,
                                         3784, 3962, 4140, 4316, 4493, 4672, 4850, 5028, 5206, 5381, 5559, 5738, 5915, 6094, 6272, 6448, 6626, 6803, 6981, 7160, 7337, 7515, 7691]]
    hit0 = 14
    # 能量爆炸攻击力：<data1>%
    data1 = [int(i*1.085*1.11) for i in [0, 38996, 48039, 57081, 66124, 75168, 84211, 93255, 102298, 122473, 132423, 142370, 152317, 162264, 172212, 182159, 192106, 202053, 212002,
                                         221949, 231896, 241842, 251789, 261736, 271684, 281631, 291578, 301525, 311475, 321422, 331369, 341316, 351263, 361211, 371158, 381105, 391053, 401001, 410948, 420895, 430842]]
    hit1 = 1
    CD = 145

    MP = [1129, 9483]
    无色消耗 = 5

    形态 = ["速C", "能源"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "速C":
            self.hit0 = 14
            self.hit1 = 1
        if 形态 == "能源":
            self.hit0 = 25
            self.hit1 = 1


class 技能15(主动技能):
    名称 = '能量禁锢'
    备注 = '护石：追加爆炸两次'
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 多段攻击力：<data0>%
    data0 = [int(i*1.085*1.12) for i in [0, 1072, 1181, 1293, 1401, 1509, 1619, 1727, 1836, 1945, 2055, 2164, 2273, 2381, 2491, 2599, 2707, 2817, 2926, 3036, 3144, 3253, 3362, 3471, 3579, 3689, 3798, 3908,
                                         4016, 4124, 4234, 4344, 4454, 4563, 4671, 4781, 4889, 4997, 5107, 5215, 5326, 5434, 5543, 5652, 5761, 5870, 5979, 6087, 6198, 6306, 6414, 6524, 6632, 6742, 6850, 6959, 7069, 7178, 7286, 7397, 7505]]
    hit0 = 10
    data1 = [int(i*1.085*1.12) for i in [0, 4605, 5071, 5538, 6006, 6472, 6941, 7408, 7874, 8342, 8809, 9276, 9743, 10211, 10678, 11145, 11612, 12079, 12548, 13014, 13482, 13948, 14415, 14883, 15349, 15818, 16285, 16751, 17219,
                                         17686, 18153, 18621, 19088, 19555, 20023, 20489, 20956, 21425, 21891, 22359, 22826, 23292, 23760, 24226, 24695, 25162, 25629, 26096, 26563, 27031, 27499, 27967, 28433, 28902, 29369, 29836, 30303, 30769, 31237, 31704, 32172]]
    hit1 = 1
    CD = 25
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [378, 1058]
    无色消耗 = 1

    def 装备护石(self):
        self.hit0 = 14
        self.power0 = 0.89
        self.power1 = 1.66


class 技能16(主动技能):
    名称 = '离散能量波'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.085*1.117) for i in [0, 2255, 2484, 2713, 2941, 3170, 3400, 3630, 3858, 4086, 4315, 4543, 4774, 5002, 5230, 5460, 5688, 5919, 6147, 6376, 6604, 6832, 7061, 7291, 7520, 7749, 7978, 8206, 8437, 8665,
                                          8893, 9122, 9350, 9581, 9809, 10039, 10267, 10495, 10726, 10954, 11183, 11411, 11639, 11869, 12098, 12328, 12556, 12785, 13014, 13244, 13473, 13700, 13929, 14158, 14387, 14617, 14846, 15074, 15304, 15532, 15763]]
    hit0 = 10
    data1 = [int(i*1.085*1.117) for i in [0, 9669, 10650, 11631, 12612, 13593, 14575, 15555, 16537, 17517, 18499, 19479, 20460, 21443, 22423, 23404, 24384, 25367, 26347, 27328, 28308, 29290, 30272, 31252, 32234, 33214, 34196, 35177, 36158,
                                          37139, 38119, 39102, 40082, 41063, 42043, 43026, 44007, 44987, 45968, 46951, 47931, 48912, 49893, 50874, 51855, 52836, 53818, 54798, 55780, 56760, 57742, 58722, 59703, 60687, 61667, 62648, 63628, 64611, 65592, 66572, 67554]]
    hit1 = 1
    CD = 50
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [776, 1629]
    无色消耗 = 2

    def 装备护石(self):
        self.hit0 = 15
        self.power0 = 0.75
        self.power1 = 1.66
        self.CDR *= 0.9


class 技能17(主动技能):
    名称 = '绝望圆舞'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 乱舞攻击力：<data0>% X 8次
    data0 = [int(i*1.085*1.111) for i in [0, 4572, 5036, 5502, 5966, 6429, 6893, 7358, 7823, 8287, 8751, 9215, 9679, 10143, 10608, 11071, 11535, 11999, 12464, 12927, 13391, 13855, 14320, 14784, 15247, 15712, 16178, 16642, 17104,
                                          17568, 18034, 18498, 18962, 19424, 19890, 20354, 20818, 21281, 21746, 22210, 22674, 23139, 23604, 24067, 24531, 24996, 25460, 25923, 26387, 26852, 27316, 27779, 28243, 28708, 29172, 29636, 30099, 30564, 31028, 31492, 31958]]
    hit0 = 8
    # 最后一击攻击力：<data1>%
    data1 = [int(i*1.085*1.111) for i in [0, 15685, 17275, 18867, 20457, 22050, 23640, 25232, 26822, 28416, 30006, 31597, 33188, 34780, 36371, 37962, 39553, 41146, 42737, 44328, 45919, 47511, 49101, 50693, 52283, 53877, 55466, 57058, 58649,
                                          60241, 61832, 63423, 65015, 66605, 68197, 69787, 71381, 72971, 74563, 76153, 77746, 79336, 80928, 82518, 84111, 85702, 87293, 88884, 90476, 92067, 93658, 95249, 96842, 98433, 100024, 101615, 103207, 104797, 106388, 107979, 109571]]
    hit1 = 1
    CD = 40

    MP = [642, 4975]
    无色消耗 = 3

    是否有护石 = 1

    def 装备护石(self):
        self.倍率 = 1.35


class 技能18(被动技能):
    名称 = '源力汇聚'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能19(主动技能):
    名称 = 'CEAB-2超能爆发'
    备注 = '最大蓄气&最大充电'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.085*1.117) for i in [0, 57209, 63013, 68816, 74622, 80425, 86229, 92033, 97838, 103641, 109445, 115249, 121053, 126857, 132660, 138464, 144269, 150073, 155877, 161679, 167483, 173289, 179093, 184898, 190701, 196505, 202309, 208112, 213917,
                                          219720, 225524, 231329, 237133, 242937, 248739, 254543, 260348, 266152, 271956, 277762, 283565, 289369, 295172, 300977, 306781, 312584, 318388, 324193, 329997, 335800, 341603, 347408, 353212, 359016, 364820, 370624, 376429, 382232, 388036, 393841, 399645]]
    hit0 = 1
    CD = 45
    是否有护石 = 1

    MP = [930, 6975]
    无色消耗 = 5

    def 装备护石(self):
        self.倍率 = 1.39
        self.CDR *= 0.9


class 技能20(主动技能):
    名称 = '终焉：超世界崩坏'
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # 多段攻击力：<data0>%
    data0 = [int(i*1.085*1.115) for i in [0, 1260, 1549, 1842, 2136, 2429, 2719, 3012, 3304, 3597, 3889, 4180, 4473, 4765, 5057, 5350, 5644, 5933, 6227, 6520, 6812, 7103, 7396, 7688, 7980, 8273, 8564, 8857, 9148, 9441, 9735,
                                          10024, 10317, 10611, 10903, 11195, 11487, 11779, 12072, 12364, 12656, 12948, 13240, 13532, 13825, 14119, 14408, 14701, 14995, 15287, 15579, 15870, 16163, 16455, 16747, 17040, 17332, 17623, 17916, 18209, 18501]]
    hit0 = 6
    # 爆炸攻击力：<data1>%
    data1 = [int(i*1.085*1.115) for i in [0, 118077, 145459, 172840, 200220, 227602, 254982, 282363, 309745, 337125, 364504, 391886, 419267, 446647, 474029, 501409, 528790, 556172, 583552, 610933, 638314, 665695, 693075, 720456, 747836, 775217, 802599, 829979, 857360, 884741, 912122,
                                          939502, 966884, 994265, 1021645, 1049024, 1076406, 1103787, 1131167, 1158549, 1185929, 1213310, 1240692, 1268072, 1295453, 1322834, 1350215, 1377595, 1404976, 1432356, 1459737, 1487119, 1514499, 1541880, 1569261, 1596642, 1624022, 1651404, 1678785, 1706165, 1733547]]
    hit1 = 1
    CD = 180

    MP = [2633, 5266]
    无色消耗 = 10

    形态 = ["速C", "满"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "速C":
            self.hit0 = 6
            self.hit1 = 1
        if 形态 == "满":
            self.hit0 = 14
            self.hit1 = 1


class 技能21(主动技能):
    名称 = '临界源能弹'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.085*1.10) for i in [0, 19967, 21992, 24018, 26043, 28069, 30094, 32120, 34146, 36172, 38198, 40224, 42249, 44274, 46300, 48326, 50351, 52377, 54403, 56429, 58455, 60479, 62505, 64531, 66557, 68583, 70608, 72634, 74660, 76686,
                                         78710, 80736, 82762, 84788, 86814, 88840, 90865, 92891, 94917, 96942, 98967, 100993, 103019, 105045, 107071, 109097, 111122, 113147, 115173, 117199, 119224, 121250, 123276, 125302, 127328, 129354, 131378, 133404, 135430, 137456, 139481]]
    hit0 = 5
    data1 = [int(i*1.085*1.10) for i in [0, 110930, 122182, 133436, 144690, 155944, 167198, 178451, 189705, 200959, 212213, 223467, 234720, 245974, 257228, 268482, 279736, 290989, 302243, 313497, 324751, 336005, 347258, 358512, 369766, 381020, 392274, 403527, 414781,
                                         426035, 437289, 448543, 459795, 471050, 482304, 493558, 504812, 516064, 527318, 538572, 549826, 561080, 572333, 583587, 594841, 606095, 617349, 628602, 639856, 651110, 662364, 673618, 684871, 696125, 707379, 718633, 729887, 741140, 752394, 763648, 774902]]
    hit1 = 0
    CD = 60

    MP = [800, 6667]
    无色消耗 = 7

    形态 = ["常规", "能源"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "常规":
            self.hit0 = 5
            self.hit1 = 0
        if 形态 == "能源":
            self.hit0 = 0
            self.hit1 = 1


class 技能22(被动技能):
    名称 = '奇点源核'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能23(主动技能):
    名称 = '源能场域：黑暗边缘'
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.085*1.115) for i in [0, 369810, 455564, 541317, 627071, 712824, 798578, 884331, 970084, 1055838, 1141590, 1227345, 1313097, 1398851, 1484604, 1570358, 1656111, 1741864, 1827618, 1913372, 1999125, 2084878, 2170632, 2256385, 2342139, 2427891, 2513645, 2599398, 2685152, 2770905,
                                          2856658, 2942412, 3028165, 3113919, 3199672, 3285426, 3371179, 3456933, 3542686, 3628440, 3714192, 3799946, 3885699, 3971452, 4057206, 4142959, 4228713, 4314466, 4400219, 4485973, 4571726, 4657480, 4743234, 4828987, 4914739, 5000493, 5086247, 5172000, 5257753, 5343507, 5429260]]
    hit0 = 1
    CD = 290

    MP = [4028, 80567]
    无色消耗 = 15


class classChange(Character):
    def __init__(self):
        self.实际名称 = 'specialist'
        self.名称 = '苍暮·源能专家'
        self.角色 = '枪剑士'
        self.角色类型 = '输出'
        self.职业 = '源能专家'
        self.武器选项 = ['源力剑']
        self.输出类型选项 = ['魔法百分比']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法百分比'
        self.武器类型 = '源力剑'
        self.防具类型 = '布甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.00

        super().__init__()
